// pages/orders/All-orders/order.js
const baseURL = getApp().globalData.baseURL
Page({
  data: {
    tab:[
			{ name:'全部', query:'all' },
			{	name:'待支付', query:'unpaid' },  // 0: '待支付' 取消：cancelled
			{	name:'待发货', query:'paid' }, // 1: '已支付' ->待发货
			{	name:'待收货', query:'shipped' }, // 2: '已发货'
      {	name:'待评价', query:'evaluate' }, // 3: '待评价'  4：('completed', '已完成'), 5：('cancelled', '已取消')
      {	name:'售后', query:'afterSales' }, // 退款中：refunding，已退款：refunded
		],
    order_data:[],     // 后端返回的数据
    re: 0,            // Tab在第几个上：0全部，1待支付，2待发货，3待收货，4待评价，5售后
    showList: false,  // 右上角售后选择框是否显示
    selectedValue: null, // 右上角售后选择框：选择的第几项：0全部，1待处理，2已处理
  },

  /** * 生命周期函数--监听页面加载 */
  onLoad(options) {
    let LE = Object.keys(options).length// 判断是否传值
		let index = LE === 0 ? 0 : JSON.parse(options.obj).index
    let query = LE === 0 ? {} : JSON.parse(options.obj).query
    this.setData({ re: index })
    this.getOrder(query)  // 获取订单信息
  },

  // 从ALL-orders/order页面切换选项：微信内部生成的点击事件
  swItch(event){
    const index = event.currentTarget.dataset.index
    const query = event.currentTarget.dataset.query
    if (index == 5){
      this.setData({showList: !this.data.showList})
    }else{
      this.setData({showList: false})
    }
		this.setData({ re: index })
		this.getOrder(query)  // 获取订单信息
  },

  // 获取订单信息
  async getOrder(query){
    const token = wx.getStorageSync('token')  //取出本地缓存的用户信息
    await wx.request({
      url: `${baseURL}api/orders/`,
      method: 'GET',
      header: { 'Authorization': 'Bearer ' + token.access },
      data: {status: query},
      success: res => {
        // 构造页面需要的数据: 里面有收货信息，购买清单等
        this.setData({ order_data: res.data.results})
        // console.log('获取订单信息返回的data:', this.data.order_data)
      },
      
    })
  },

  // 售后选择框处理
  handleSelect(e) {
    const value = e.currentTarget.dataset.value
    this.setData({
      selectedValue: value,
    })
    console.log('选中的值:', value) // 输出1/2/3
    const query = value === 1 ? 'afterSales' : value === 2 ? 'refunding' : 'refunded';
    this.getOrder(query)  // 获取订单信息
  },

  // 点击其他地方，选择框关闭
  closeList() {
    this.setData({ showList: false })
  },

  // 退款
	refUnd(e){
    wx.showToast({ title: '贵金属交易，暂不支持退款，具体请联系客服...', icon: 'none', mask: true })
    return
    // 要退款的订单号
    const order_no = e.target.dataset.order_no
    console.log('退款的order_no：',order_no)
    // 要退款订单的index
    const index = e.target.dataset.index
    console.log('退款的index：',index)
    const itemList = ['七天无理由退换货','商品信息描述不符','质量问题','包装/商品破损/污渍','其他']
		wx.showActionSheet({
			alertText:'退款原因',
			itemList: itemList,
			success: async(res)=> {
        const token = wx.getStorageSync('token')//取出本地缓存的用户信息
        // 退款理由
        const  refund_reason = itemList[res.tapIndex]
        // 改变页面退款中...状态
        const tempList = this.data.order_data;
        tempList[index].status = 'refunding';
        this.setData({ 'order_data': tempList });
        // 请求后端更改状态，并等待后端人员确认退款....（以后后端做好了，在联动）

			},
			fail (res) {
				console.log(res.errMsg)
			}
		})
	},
  
  //显示详情页及收货地址,若有快递信息,则一块显示
	viewDetail(e){
    // 要查物流订单的index
    const index = e.target.dataset.index
    wx.navigateTo({
        url:'/pages/orders/logistics/logistics'   //?value=' + encodeURIComponent(obj)
      })
  },
  
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})